import { defineStore } from 'pinia'
import { ref } from 'vue'

export interface Collection {
  id: string
  name: string
  image: string // base64格式的图片
  description: string
  era: string // 年代
  material: string // 材质
  size: string // 尺寸
  createdAt: number // 创建时间戳
}

export const useCollectionStore = defineStore(
  'collection',
  () => {
    // 藏品列表
    const collections = ref<Collection[]>([
      {
        id: '1',
        name: '青铜器',
        image: '',
        description: '战国时期青铜器，造型精美，纹饰华丽，具有很高的历史和艺术价值。',
        era: '战国时期',
        material: '青铜',
        size: '高25cm，宽15cm',
        createdAt: Date.now() - 1000000
      },
      {
        id: '2',
        name: '陶瓷花瓶',
        image: '',
        description: '明代青花瓷器，瓶身绘有精美的花鸟图案，釉色莹润，保存完好。',
        era: '明代',
        material: '陶瓷',
        size: '高30cm，直径18cm',
        createdAt: Date.now() - 2000000
      },
      {
        id: '3',
        name: '古代书画',
        image: '',
        description: '清代山水画卷，笔法细腻，意境深远，是传统文人画的代表作品。',
        era: '清代',
        material: '纸本设色',
        size: '长180cm，宽45cm',
        createdAt: Date.now() - 3000000
      }
    ])

    // 获取所有藏品
    function getAllCollections() {
      return collections.value
    }

    // 根据ID获取藏品
    function getCollectionById(id: string) {
      return collections.value.find(item => item.id === id)
    }

    // 添加新藏品
    function addCollection(collection: Omit<Collection, 'id' | 'createdAt'>) {
      // 生成新的ID (简单实现，实际可能需要更复杂的ID生成逻辑)
      const newId = String(collections.value.length + 1)

      const newCollection: Collection = {
        id: newId,
        createdAt: Date.now(),
        ...collection
      }

      collections.value.push(newCollection)
      return newId
    }

    // 更新藏品信息
    function updateCollection(id: string, data: Partial<Omit<Collection, 'id' | 'createdAt'>>) {
      const index = collections.value.findIndex(item => item.id === id)
      if (index !== -1) {
        collections.value[index] = {
          ...collections.value[index],
          ...data
        }
        return true
      }
      return false
    }

    // 删除藏品
    function deleteCollection(id: string) {
      const index = collections.value.findIndex(item => item.id === id)
      if (index !== -1) {
        collections.value.splice(index, 1)
        return true
      }
      return false
    }

    return {
      collections,
      getAllCollections,
      getCollectionById,
      addCollection,
      updateCollection,
      deleteCollection
    }
  },
  {
    persist: true, // 使用持久化存储
  }
)
